#pragma once

#include <vector>
#include "AnimTimeStamp.h"
#include "../SGD Wrappers/SGD_Geometry.h"
#include "../SGD Wrappers/SGD_Handle.h"
#include "Timer.h"

class EnemyUnit;

class FOV
{
	

public:
	FOV();
	~FOV();

	void Update(float dt);
	void Render();
	bool hasLOS(SGD::Point startPos, SGD::Point endPos);
	bool lookForPlayer();

	void SetOwner(EnemyUnit* owner);

	void PopulateCollidables(std::vector<SGD::Rectangle*>& collidables);
	//SGD::HTexture image = SGD::INVALID_HANDLE;

protected:
	EnemyUnit* m_pOwner = nullptr;
	float m_fViewDistance = 400.0f;
//	SGD::Point m_ptPosition = { 0, 0 };
	//float m_fRotation = 0.0f;
	//SGD::Vector direction = { 0, -1 };
//	AnimTimeStamp animation;
	SGD::HAudio* aware = nullptr;
	Timer losTimer;
	std::vector<SGD::Rectangle*> Collidables;

};